Unobtrusive driving assistance method and system for a vehicle to avoid hazards

ABSTRACT

The present disclosure provides a driving assistance method and system for a mobile vehicle to avoid hazards in its environment. This system can detect hazards in a vehicle&#39;s surroundings and unobtrusively adjust its driving module&#39;s driving commands when necessary to avoid hazards. The system is configured to allow it to provide interference-free assistance to the operator of a human-operated vehicle or the motion controller of an autonomous vehicle to avoid hazards.

FIELD

The present disclosure relates to a driving assistance method and systemfor human-operated (either manually, through tele-operation, or by othermeans) or autonomous vehicles which provides unobtrusive assistance inavoiding hazards.

BACKGROUND

Despite the advancement in autonomous navigation in recent years, manualoperation of robotic vehicles is still the preferred approach in manyscenarios. For example, security robots are generally tele-operated.Manually operating a robot may be an extremely demanding and exhaustingtask to operators due to limited situation awareness, especially in anunknown remote environment. One major challenge is hazard avoidance;however, conventional hazard avoidance techniques are largely intendedfor mobile robots under autonomous navigation and do not consider thescenario with human operators in the loop.

Conventional hazard avoidance approaches for mobile robots can beroughly divided into two categories: global and local. If a hazard mapof the operational space of a mobile robot and a goal position aregiven, hazard avoidance is essentially a path planning problem formobile robots since a global hazard-free path can be planned in advance.This is generally referred to as the global approach for hazardavoidance. If a map is not given, or there are unknown and/or movingobjects in the environment, hazards must be detected by onboard sensorsand avoided while the robot is moving towards its destination.

Hazard avoidance solutions in this category are known as local orreactive approaches. They generally keep updating a local map of arobot's immediate environment and generate a short-term path within themap to avoid nearby hazards. This hazard-free path generated on the flycould be as simple as a heading direction or a single way-point that cansafely lead the robot to a nearby location. For its short planninghorizon, this hazard-avoiding path within a local map is considered as alocal path, as opposed to a global path that leads a mobile robot to itsfinal destination. A local path is executed immediately after beinggenerated, and in the meantime, the robot deviates from its global path.Due to the path re-planning mechanism, this category of hazard avoidanceapproaches can be best described as “path-altering” methods.

Techniques for generating local hazard-free paths can be divided intoheuristic, optimization-based, and sampling-based approaches. Early“path-altering” approaches such as the artificial potential filed method(PFM) and the virtual force field (VFF) method are heuristic in findinglocal hazard-free paths. These two methods and their variants representhazards as repulsive forces and the destination of a mobile robot as anattractive force exerted on it. The resulting force is then accepted asa safe heading direction for the mobile robot. Although they are simpleand efficient in producing a directional command for collision-freemovement, these methods have been found limited in narrow environmentswith dense obstacles or uneven terrain. This drawback can be attributedto the fact that the information of hazard distribution is largely lostin the resultant repulsive force, which is reduced to a single vector.

A detailed description of the principles and limitations of these twomethods is given by Johann Borenstein in Y. Koren and J. Borenstein,“Potential field methods and their inherent limitations for mobile robotnavigation,” Proceedings of 1991 IEEE International Conference onRobotics and Automation (DOI: 10.1109/ROBOT.1991.131810). Later JohannBorenstein et. al. proposed the famous vector field histogram (VFH)method, which is disclosed in U.S. Pat. No. 5,006,988A. This improvedsolution provides some remedies to the shortcoming of PFM and VFF bytaking the distribution of hazards into consideration. It employs aone-dimensional polar histogram to hold the obstacle density in multipleangular sectors around a vehicle's location, and the angular sectorholding the lowest score in the histogram thus indicates the safeheading direction for the vehicle.

Optimization-based approaches rely on an objective function to balancetwo often competing goals in a navigation task: reaching a globaldestination and avoiding local obstacles. Through optimization thedeviation from a global path or a desired heading direction can beminimized during obstacle avoidance. An example of this technique canfound in an extension of the VFH method, which was disclosed in I.Ulrich and J. Borenstein. “VFH*: local obstacle avoidance withlook-ahead verification.” Proceedings of 2000 IEEE InternationalConference on Robotics and Automation (10.1109/ROBOT.2000.846405). Thecost function in the optimization approach contains a term thatrepresents the deviation from the target direction; as a result, itssolution provides a safe heading direction that minimizes suchdeviations.

Instead of calculating an alternative path through heuristic oroptimizing means, sampling-based approaches draw a set of local pathsand then select an hazard-free one from the set. A sampling-basednavigation system for hazard avoidance is described by Felix vonHundelshausen et. al. in Felix von Hundelshausen, Michael Himmelsbach,Falk Hecker, Andre Mueller, and Hans-Joachim Wuensche, Driving withTentacles: Integral Structure for Sensing and Motion, Journal of FieldRobotics, 25(9), 640-673, 2008 (DOI 10.1002/rob.20256). This systemfirst discretizes the basic driving options of a vehicle by a set ofpre-calculated trajectories, which are called tentacles for theirsimilarity to an insect's antennae or feelers, and then selects a safeand feasible trajectory to avoid nearby obstacles. With sufficientsamples, the sampling-based approaches are more likely to find betterlocal paths than heuristic approaches, and they are more likely to avoidlocal minima compared with optimization-based approaches. In addition,the sampling-based approaches can systematically handle a mobile robot'smotion constraints such as limits on its speed and trajectory curvature.Either by only generating feasible path candidates in the sampling stepor by only choosing a feasible one in the vetting step, this methodguarantees that the selected obstacle-avoiding path does not violate therobot's motion constraints. For example, a sampling-based obstacleavoidance system disclosed in U.S. Pat. No. 7,647,178 only considersfeasible “obstacle-avoiding maneuvers” in its sampling pool. This wouldexclude any maneuvers that may violate the robot's motion constraintsfrom the candidate set.

The “path-altering” approaches have been applied to many mobile robots,and some have achieved great success. For example, the sampling-basedapproach developed by Hundelshausen et. al. was successfullydemonstrated in the Civilian European Land Robot Trial 2007 and the 2007DARPA Urban Challenge. Despite the successful applications of someobstacle avoidance systems based on the “path-altering” principle, thiscategory of solutions is largely restricted to autonomous navigation ofmobile robots and cannot be directly applied to mobile vehicles that areprimarily controlled by human operators. When a “path-altering” approachis applied to a human-operated vehicle, it needs take complete controlof the vehicle whenever it executes a local obstacle-free path. This newpath may be quite different from the heading (steering angle) specifiedby the driver. In the meantime, the operator's driving commands arecompletely rejected; consequently, the operator will momentarily feel aloss of control of the vehicle. This may cause significant interterencesto the human operator, thus making “path-altering” approaches a lessdesirable option for collision avoidance functions when applied tohuman-operated vehicles.

There is another class of optimization-based obstacle avoidanceapproaches which solve their objective functions in the velocity spaceinstead of the position space. By directly solving an optimizationproblem in the velocity space, these methods can take a robot's dynamicsand velocity constraints into consideration, which is an improvementover optimization-based methods that are formulated in the positionspace. An optimization-based obstacle avoidance system disclosed in U.S.Pat. No. 8,060,306 B2 defines its objective function as a function of arobot's translational and rotational speeds. This object functionincludes a measure of alignment with the robot's target heading, theclearance to obstacles, the forward velocity of the robot, and thechange of the robot's velocity. It directly provides obstacle-avoidingvelocity commands while it seeks to balance the goal of reaching thetarget location, avoiding nearby obstacles, and ensuring smooth motionof the robot. Like “path-altering” approaches, these methods willexhibit similar interference issues when applied to human-operatedvehicles because they lack the capability of considering an operator'sinstantaneous driving commands.

While without formally recognizing this interference issue, someobstacle avoidance techniques proposed specifically for human-operatedrobots directly augment an operator's driving commands to avoidobstacles, as opposed to providing an alternative path. For example,U.S. Pat. No. 8,761,990 B2 discloses a navigation system that canoverwrite a user's “driving suggestions” to avoid obstacles. It allowsuser-suggested driving commands to drive a mobile vehicle until obstacledetection indicates an anticipated collision with an obstacle.Afterwards, it applies one of a few predefined “primitive”collision-avoiding actions, such as reducing the vehicle's linear speedand/or angular speed, driving the vehicle towards an open space, andstopping the vehicle. By directly augmenting an operator's drivingcommands, this type of techniques does not have to take control of avehicle for extended periods, so they are less likely to cause severeinterference compared with “path-altering” approaches.

The interference issue of this type of techniques is formally mentionedin U.S. Patent Application No. 2016020759A1. The driving assistanceapparatus disclosed therein contains a procedure to identify unnecessaryinterventions for obstacle avoidance; therefore, it is claimed that thisapparatus can reduce interference to a vehicle's driver by only applyingnecessary interventions. The capability of obstacle avoidance has alsobeen integrated into driving assisting systems for automobiles. Popularobstacle avoidance strategies adopted by driving assisting systems forautomobiles include auto-braking and turning augmentation. For example,U.S. Pat. No. 6,157,892 A discloses a driving assisting system thatrelies on two assisting operations to assist obstacle avoidance, namelyan automatic braking operation and a so-called “turnability” increasingcontrol operation. If this system determines that a safe directionexists, it applies the “turnability” increasing control operation toassist the driver's steering control; otherwise, it applies theauto-braking to stop the automobile before any collisions. Since thesemethods directly interact with drivers' commands, they fall into thesame category of the preceding obstacle avoidance approaches forhuman-operated robots.

Despite their improvements over “path-altering” approaches, interferenceis inevitable in these techniques for two reasons. First, thesesolutions do not have an effective way to determine when an interventionto a driver's commands is absolutely necessary to avoid an obstacle.This may cause interference when unnecessary interventions are applied.Second, the schemes for choosing obstacle-avoiding actions areprimitive. They generally does not consider a vehicle's current motionand tend to ignore an operator's driving intention. This may causeunsmooth or jittering feelings to the operator.

SUMMARY

In light of the “interference-prone” nature of existing obstacleavoidance solutions, this disclosure presents a new obstacle avoidancesystem that provides unobtrusive obstacle avoidance assistance tohuman-operated vehicles. The system disclosed herein can determinewhether an operator's driving commands are safe in the presence ofnavigational hazards (obstacles) and directly adjust unsafe drivingcommands in the least intrusive way to assist the operator to avoid suchhazards. Hazards include obstacles above ground that the vehicle cancollide with, “negative” obstacles such as cliffs or holes in the groundthat the vehicle can drive into, and hazardous terrain such as steepslopes or stairs, which the vehicle can only traverse along certaindirection and/or at reduced speed or should not enter. The novelty ofthis hazard avoidance system is its unobtrusive and assistive nature,which allows it to seamlessly assist a human operator of a mobilevehicle without causing interference whether driving directly orremotely from the vehicle. The “command-altering” mechanism of thissystem implies that it can interact with similar driving commands issuedby autonomous navigation systems; therefore, this system can be appliedto autonomous vehicles as well.

The present invention is directed to a driving assistance system for avehicle. This system uses on-board perception to detect nearby hazardsand provides unobtrusive hazard avoidance assistance for bothhuman-operated and autonomous vehicles, said vehicles having one or morepositioning sensors, one or more rangefinders, a computer, and a drivingmodule.

One aspect of this invention provides a method of providing unobtrusivedriving assistance to a vehicle to avoid hazards, the vehicle having acomputer, one or more positioning sensors connected to said computer,one or more rangefinder sensors connected to said computer, a drivingmodule interfaced with said computer, said method comprising:

-   -   a) acquiring raw sensor data from said one or more positioning        sensors and said one or more rangefinder sensors;    -   b) estimating a state of said vehicle from said raw data from        said one or more positioning sensors;    -   c) identifying hazards to said vehicle from said raw data from        said one or more rangefinder sensors;    -   d) computing a range of safe driving commands for all said        hazards;    -   e) receiving driving commands from said driving module and        comparing them with said range of safe driving commands; and    -   f) if said driving commands fall outside of said range of safe        driving commands, adjusting said driving commands from said        driving module and passing the adjusted driving commands to said        vehicle, otherwise if said driving commands fall within said        range of driving commands, passing said driving commands to said        vehicle without modification.

The step of computing the range of safe driving commands may be done byusing the locations of said hazards, the characteristics of said hazards(e.g., obstacle's size and height or depth, slope, roughness, soiltype), a kinematic model of the vehicle, the vehicle's geometric shape,attitude and velocity, and a safety clearance between hazards and thevehicle. The safety clearance can be adjusted during runtime accordingto said vehicle's velocity and said hazards' distribution. The step ofadjusting said driving commands from the driving module produces drivingcommands that are within said range of safe driving commands and withinthe velocity and the attitude limit of said vehicle. The obstaclesheight, depth, slope roughness, can be calculated from rangefinder or 3Dcamera data. Soil type can be estimated from the traction system of thevehicle.

The state of the said vehicle may include velocity, turning radius andan attitude (orientation of the vehicle with respect to the gravityvector both in the longitudinal and lateral directions).

Different from “path-altering” hazard avoidance approaches, the proposedmethod does not generate an alternative path and force a vehicle tofollow it to avoid hazards. Instead, it directly adjusts drivingcommands of a vehicle to change its motion to avoid or handle hazards.Built upon this novel “command-altering” mechanism, the proposed methodhas two advantages over “path-altering” approaches in reducinginterference to a driving module. First, this method does not intervenein the vehicle's normal motion unless its driving module's commands aredeemed unsafe. This method provides a systematic way to determinewhether the driving module's commands are safe in the presence ofhazards, so it avoids imposing unnecessary interventions to the drivingmodule by only adjusting unsafe comments. In other words, the effectivehorizon of such adjustments lasts only as long as the commands aredetermined unsafe, so this method does not need to take control avehicle for extended periods. Second, it is able to capture the drivingintention of a driving module while adjusting its unsafe commands.

This method assumes that a driving module's instantaneous commandsrepresent its driving intention, so it does not reject them withoutconsideration even if they were deemed unsafe. It seeks to replaceunsafe commands by the closest safe and feasible commands so that thedriving intention embedded in them is retained. Because this method canaccurately distinguish between safe and unsafe commands and adjustunsafe commands with minimal correction, the driving module's drivingintention is respected to the maximum extent possible. By contrast,conventional approaches, particularly the ones involving optimization,tend to find an alternative hazard-free path that is optimal in acertain sense but may significantly deviates from the intention of thedriving module.

For example, they may repeatedly find an alternative path pointing tothe widest gap between nearby hazards regardless of the driving module'scommands, while the proposed method will strive to follow the drivingmodule's commands as closely as possible even it chooses to drivethrough a narrower gap. In a preferred embodiment of this invention, inthe presence of hazards, the driving modules corrective commands are theminimal change in driving command (e.g. velocity) from that originallyspecified by the operator. The subtle difference between the operator'sspecified commanded velocity and the driving module corrective drivingcommands contribute to this seamless, and unobtrusive safety correction.In a path altering approach, the instantaneous command of a new path (aposition trajectory) is more likely to produce more abrupt changes inthe instantaneous velocity of the vehicle, leading to this perception ofinterference on the part of the operator.

The present invention also provides a driving assistance system mountedon a vehicle for detecting and avoiding hazards, said system comprising:

-   -   a) one or more positioning sensors mounted on the vehicle, one        or more rangefinders mounted on the vehicle, and a computer on        board the vehicle, said one or more positioning sensors and one        or more rangefinders being interfaced with said computer, said        computer being interfaced with the vehicle's actuation system;    -   b) said computer being programmed with instructions for        computing a range of safe driving commands including        -   i) computing a range of all safe trajectories for said            vehicle to avoid or handle any hazards in the environment of            said vehicle detected by said one or more rangefinders, and        -   ii) converting said range of safe trajectories into a range            of safe driving commands by using an inverse kinematic model            of said vehicle;    -   c) said computer being programmed with instructions for        adjusting said driving module's driving commands including:        -   i) comparing the driving commands from said driving module            with said range of safe driving commands,        -   ii) adjusting the driving commands from said driving module            if they are outside the range of safe driving commands; and        -   iii) adjusting said adjusted driving commands so that they            conform to the dynamic constraints and velocity limits of            said vehicle    -   d) said computer being programmed with instructions for        notifying said driving module of said command adjustment and        hazard information.

The present disclosure provides a non-transitory computer-readable mediacontaining instructions, which when read and executed by a computer,causes the computer to execute a method for providing unobtrusivedriving assistance to a vehicle to avoid and handle hazards, the vehiclehaving a computer, one or more positioning sensors connected to saidcomputer, one or more rangefinder sensors connected to said computer, adriving module interfaced with said computer, said method comprising:

-   -   a) acquiring raw sensor data from said one or more positioning        sensors and said one or more rangefinder sensors;    -   b) estimating a state of said vehicle from said raw data from        said one or more positioning sensors;    -   c) identifying hazards to said vehicle from said raw data from        said one or more rangefinder sensors;    -   d) computing a range of safe driving commands for all said        hazards;    -   e) receiving driving commands from said driving module and        comparing them with said range of safe driving commands; and    -   f) if said driving commands fall outside of said range of safe        driving commands, adjusting said driving commands from said        driving module and passing the adjusted driving commands to said        vehicle, otherwise if said driving commands fall within said        range of driving commands, passing said driving commands to said        vehicle without modification.

A further understanding of the functional and advantageous aspects ofthe disclosure can be realized by reference to the following detaileddescription and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the driving assistance method and system will now bedescribed, by way of example only, with reference to the drawings. Thedrawings are not necessarily to scale. For clarity and conciseness,certain features of the invention may be exaggerated and shown inschematic form.

FIG. 1 shows the concept of the present hazard avoidance method in whichthe hazard avoidance works as an unobtrusive driving assistance systemfor a vehicle and its driving module;

FIG. 2 shows the workflow of the present hazard avoidance system;

FIGS. 3(a), (b) and (c) show the critical trajectories for a vehicle toavoid or handle different types of hazard;

FIG. 4 shows a few examples of safe trajectories for a vehicle to avoida hazard in its front;

FIG. 5 shows the partition of detected hazards around a vehicle;

FIG. 6 shows the critical trajectory for a vehicle to avoid a hazard inits front in which the vehicle turns right by following an arc ofconstant curvature 1/R in order to avoid an hazard in front;

FIG. 7 shows the critical trajectory for a vehicle to avoid a hazard onits side before its middle line such that the vehicle should avoidturning too much to the left to avoid an hazard in Zone II;

FIG. 8 shows the critical trajectory for a vehicle to avoid an hazard onits side behind its middle line showing the vehicle should avoid turningtoo much to the right to avoid an hazard in Zone III;

FIGS. 9(a) and 9(b) show a hazard visual waning signal for notifying adriving module of command adjustment.

DETAILED DESCRIPTION OF THE INVENTION

Various embodiments and aspects of the disclosure will be described withreference to details discussed below. The following description anddrawings are illustrative of the disclosure and are not to be construedas limiting the disclosure. The drawings are not necessarily to scale.Numerous specific details are described to provide a thoroughunderstanding of various embodiments of the present disclosure. However,in certain instances, well-known or conventional details are notdescribed in order to provide a concise discussion of embodiments of thepresent disclosure.

As used herein, the terms, “comprises” and “comprising” are to beconstrued as being inclusive and open ended, and not exclusive.Specifically, when used in this specification including claims, theterms, “comprises” and “comprising” and variations thereof mean thespecified features, steps or components are included. These terms arenot to be interpreted to exclude the presence of other features, stepsor components.

As used herein, the term “exemplary” means “serving as an example,instance, or illustration,” and should not be construed as preferred oradvantageous over other configurations disclosed herein.

As used herein, the terms “about” and “approximately”, when used inconjunction with ranges of dimensions of particles, compositions ofmixtures or other physical properties or characteristics, are meant tocover slight variations that may exist in the upper and lower limits ofthe ranges of dimensions so as to not exclude embodiments where onaverage most of the dimensions are satisfied but where statisticallydimensions may exist outside this region. It is not the intention toexclude embodiments such as these from the present disclosure.

As used herein, the phrase “range sensor” refers to a device foraccurately measuring the distance to objects within a certain viewingscope of the device. The distance measurements can be based on any of anumber of principles, including time-of-flight, triangulation, phasedifference, etc. A “scan” means a set of distance data collected fromthe range sensor at a particular instance. The term “rangefinder” or “3Dcamera” is sometimes used as a synonym to “range sensor”.

As used herein, the phrase “positioning sensor(s)” refers to a deviceused to estimate the position and orientation of a vehicle. Examples ofpositioning sensors include odometric sensors, inertial measurementunits, GPS receivers, etc.

As used herein, the phrases “kinematic model” and “vehicle kinematics”typically refer to a model for a vehicle that considers only the rate ofchange of the vehicle's configuration.

As used herein, the phrase “vehicle state” refers to, but is not limitedto, any or combination of vehicle velocity, turning radius, attitude(orientation of the vehicle with respect to the gravity vector). Anyparameter that may be used to characterize the vehicle operation andcondition may be considered an element of the “state” of the vehicle.

As used herein, the term “hazard” refers to a feature or an object inthe environment or the geometry of the ground that may block or behazardous for the vehicle to traverse along its commanded path ordirection. It can be an object above ground that the vehicle can collidewith, a “negative obstacle” such as cliff or hole in the ground that thevehicle can fall into, or hazardous terrain such as steep slope orstairs, that the vehicle can only traverse only along a certaindirection and/or at a reduced speed or cannot traverse at all.

As used herein, the phrase “avoiding hazard” means changing the path andvelocity of the vehicle (e.g adjusting trajectory, velocity profileetc.).

As used herein, the term “driving module” refers to one or more personsor a computer system that issue driving commands to the vehicle. It canbe one or more persons when the vehicle is operated manually. It can bea computer system for controlling the vehicle's motion automatically. Inone embodiment a computer system running a way-point following method isused to control the vehicle's motion. In another embodiment, a securityrobot is remotely controlled by an operator via tele-operation. In athird embodiment, a vehicle is directly controlled with a human operatorin the vehicle.

As used herein, the term “driving commands” means the commands issued bythe driving module to control the motion of the vehicle. In a preferredembodiment the driving commands include a speed command for controllingthe speed of travel of said vehicle and a steering command forcontrolling the direction of travel of the vehicle. Driving commands canbe issued in other formats as well. For example, in a master-slavedriving system for remote operation of robotic arms, the drivingcommands could be pose (position and orientation) information updated ata high rate.

As used herein, the term “unobtrusive”, alone or in combination,indicates that the driving assistance provided by the present drivingassistance system does not cause interference to said driving module.

As used herein, the term “actuation system” means a computer controlledsystem in a vehicle that may accept different types of driving commands(speed and heading/steering angle or incremental position change or aposition coordinate in a global map) and servo control the vehicle toachieve these driving commands.

As required, preferred embodiments of the invention will be disclosed,by way of example only, with reference to drawings. It should beunderstood that the invention can be embodied in many various andalternative forms.

In an embodiment there is provided a computer implemented method ofproviding unobtrusive driving assistance to a vehicle to avoid andhandle hazards, the vehicle having a computer, one or more positioningsensors connected to the computer, one or more rangefinder sensorsconnected to the computer, a driving module interfaced with thecomputer, the method comprising:

-   -   a) acquiring raw sensor data from the one or more positioning        sensors and the one or more rangefinder sensors;    -   b) estimating a state of the vehicle from the raw data from the        one or more positioning sensors;    -   c) identifying hazards to the vehicle from the raw data from the        one or more rangefinder sensors;    -   d) computing a range of safe driving commands for all the        hazards;    -   e) receiving driving commands from the driving module and        comparing them with the range of safe driving commands; and    -   f) if the driving commands fall outside of the range of safe        driving commands, adjusting the driving commands from the        driving module and passing the adjusted driving commands to the        vehicle, otherwise if the driving commands fall within the range        of driving commands, passing the driving commands to the vehicle        without modification.

In an embodiment the one or more positioning sensors and the one or morerangefinder sensors are interfaced with the computer and the computer isinterfaced with the vehicle's actuation system and driving module.

In an embodiment the state of the vehicle includes velocity of thevehicle, which is generated by using the raw sensor data from the one ormore positioning sensors and a kinematics model of the vehicle.

In an embodiment the the state of the vehicles includes velocity andattitude of the vehicle, which are generated by using, the raw sensordata from the one or more positioning sensors and a kinematics model ofthe vehicle.

In an embodiment the hazards are characterized for their traversabilityby the vehicle using the raw data from the rangefinder sensors.

In an embodiment the step of computing the range of safe drivingcommands is done by using the locations of the hazards, characteristicsof the hazards, a kinematic model of the vehicle, the vehicle'sgeometric shape, state, and a safety clearance between hazards and thevehicle.

In an embodiment the step of adjusting the driving commands from thedriving module produces driving commands that are within the range ofsafe driving commands and within the velocity and inclination limits ofthe vehicle.

In an embodiment the the safety clearance can be specified by a user.

In an embodiment the safety clearance can be adjusted during runtimeaccording to the vehicle's state and the hazards' distribution.

In an embodiment the range of safe driving commands for a vehicle toavoid detected hazards, comprising the steps of:

-   -   a) partitioning all detected hazards into multiple zones around        the vehicle;    -   b) Identifying one or more critical points on the vehicle for        each of the zones;    -   c) computing one critical trajectory for each of the critical        points to avoid each hazard in the zone that is corresponding to        the critical point;    -   d) calculating the curvature of each critical trajectory;    -   e) measuring the vehicle attitude and estimating its stability;    -   f) calculating the range of safe curvatures for each of the        hazards with the range's boundaries defined by the critical        trajectories; and    -   g) calculating the intersection all ranges of safe curvatures.

In an embodiment the size of the partitioned zones are sized accordingto the vehicle's state and the hazards' distribution.

In an embodiment the step of measuring the vehicle attitude andestimating its stability is performed by calculating the position of thecenter of mass of the vehicle with respect to the contacting pointbetween the vehicle and the ground along the critical trajectories.

In an embodiment there is provided a method for adjusting the drivingmodule's unsafe driving command, comprising the steps of:

-   -   a) changing the turning rate of the unsafe command within the        vehicle's turning rate limits until the resulting curvature of        the changed command is within the range of safe curvature;        otherwise    -   b) changing the speed of the unsafe commands within the        vehicle's speed limits until the resulting curvature of the        changed command is within the range of safe curvature;        otherwise,    -   c) setting both the speed and turning rate of the unsafe command        to zero.

In an embodiment there is provided a driving assistance system mountedon a vehicle for detecting and avoiding hazards, the system comprising:

-   -   a) one or more positioning sensors mounted on the vehicle, one        or more rangefinders mounted on the vehicle, and a computer on        board the vehicle, the one or more positioning and vehicle state        sensors and one or more rangefinders being interfaced with the        computer, the computer being interfaced with the vehicle's        actuation system;    -   b) the computer being programmed with instructions for computing        a range of safe driving commands including        -   i) computing a range of all safe trajectories for the            vehicle to avoid any hazards in the environment of the            vehicle detected by the one or more rangefinders, and        -   ii) converting the range of safe trajectories into a range            of safe driving commands by using an inverse kinematic model            of the vehicle;    -   c) the computer being programmed with instructions for adjusting        the driving module's driving commands including:        -   i) comparing the driving commands from the driving module            with the range of safe driving commands,        -   ii) adjusting the driving commands from the driving module            if they are outside the range of safe driving commands; and        -   iii) adjusting the adjusted driving commands so that they            conform with the dynamic constraints and velocity limits of            the vehicle;    -   d) the computer being programmed with instructions for notifying        the driving module of the command adjustment and hazard        information.

In an embodiment the computer is interfaced with the vehicle's throttleand engine system through a drive control means to adjust a speed oftravel of the vehicle and the vehicle's steering system through asteering control means to adjust a direction of travel of the vehicle.

In an embodiment there is provided a method for computing criticaltrajectories to avoid hazards in the vicinity of a vehicle, comprisingthe steps of:

-   -   a) partitioning all detected hazards into one or more zones        around the vehicle;    -   b) identifying one or more critical points on the vehicle for        each of the one or more zones; and    -   c) computing one critical trajectory for each of the critical        points to avoid or handle each hazard in the zone that is        corresponding to the critical point.

In an embodiment there is provided a non-transitory computer-readablemedia containing instructions, which when read and executed by acomputer, causes the computer to execute a method for providingunobtrusive driving assistance to a vehicle to avoid and handle hazards,the vehicle having a computer, one or more positioning sensors connectedto the computer, one or more rangefinder sensors connected to thecomputer, a driving module interfaced with the computer, the methodcomprising:

-   -   a) acquiring raw sensor data from the one or more positioning        sensors and the one or more rangefinder sensors;    -   b) estimating a state of the vehicle from the raw data from the        one or more positioning sensors;    -   c) identifying hazards to the vehicle from the raw data from the        one or more rangefinder sensors;    -   d) computing a range of safe driving commands for all the        hazards;    -   e) receiving driving commands from the driving module and        comparing them with the range of safe driving commands; and    -   f) if the driving commands fall outside of the range of safe        driving commands, adjusting the driving commands from the        driving module and passing the adjusted driving commands to the        vehicle, otherwise if the driving commands fall within the range        of driving commands, passing the driving commands to the vehicle        without modification.

The computer-readable media in accordance with claim 17, wherein the oneor more positioning sensors and the one or more rangefinder sensors areinterfaced with the computer and the computer is interfaced with thevehicle's actuation system and driving module.

In an embodiment the state of the vehicle includes velocity of thevehicle, which is generated by using the raw sensor data from the one ormore positioning sensors and a kinematics model of the vehicle.

In an embodiment the state of the vehicles includes velocity andattitude of the vehicle, which are generated by using, the raw sensordata from the one or so more positioning sensors and a kinematics modelof the vehicle.

In an embodiment the hazards are characterized for their traversabilityby the vehicle using the raw data from the rangefinder sensors.

In an embodiment the step of computing the range of safe drivingcommands is done by using the locations of the hazards, characteristicsof the hazards, a kinematic model of the vehicle, the vehicle'sgeometric shape, state, and a safety clearance between hazards and thevehicle.

In an embodiment the step of adjusting the driving commands from thedriving module produces driving commands that are within the range ofsafe driving commands and within the velocity and inclination limits ofthe vehicle.

In an embodiment the safety clearance can be specified by a user.

In an embodiment the safety clearance can be adjusted during runtimeaccording to the vehicle's state and the hazards' distribution.

The present invention provides a driving assistance system for a vehicleto detect and avoid hazards. FIG. 1 shows a block diagram of saiddriving assistance system for providing hazard avoidance assistance.This system makes uses of one or more rangefinders mounted on a vehiclefor detecting hazards in its environment. FIG. 2 shows the workflow ofthe present hazard avoidance system. For each detected hazard, themethod calculates a range of safe trajectories and velocity profiles forthe vehicle to traverse. FIGS. 3(a), (b) and (c) show three hazardexamples and preferred behavior of the vehicle. FIG. 3(a) shows thevehicle approaching a hazard—an object located in its path—the avoidancemaneuver changes the path and velocity profile to avoid impendingcollision. FIG. 3(b) shows a negative obstacle (a recession in theground) in the path and a similar maneuver redirecting the vehicle toavoid falling into the opening in the ground. FIG. 3(c) shows thevehicle climbing stairs. The safest trajectory is to steer in thedirection perpendicular to the incline to avoid tipping or slidingsideways, falling off the side or colliding with barriers/walls if theyare present. Inclination of terrain (stairs) ahead of the vehicle can besensed with range sensors; the instantaneous inclination (longitudinaland lateral) of the vehicle can be sensed with on-board inertial sensorssuch as inclinometers and gyros. Velocity must be adjusted to avoidslipping.

FIG. 4 shows a few examples of safe trajectories for a vehicle to avoidan hazard located in its front. Afterwards, the range of safetrajectories for each hazard is converted into a range of safe drivingcommands by using an inverse kinematic model of the vehicle, and theintersection of all ranges is the final range of safe commands for thevehicle to avoid all detected hazards. Driving commands issued by adriving module are then compared with said range of safe drivingcommands. If they are within said range, then they are passed to thevehicle directly. Otherwise, the system adjusts them to fit said rangebefore passing them to the vehicle. This method minimizes itsinterference to the vehicle's motion and to the driving module bylimiting its effective horizon within the vehicle's immediate vicinity,defining a unique partition of proximate hazards, and adopting arealistic representation of the geometrical shape of the vehicle.

Conventional hazard avoidance methods determine collisions based on thedistance from an hazard to the center of a vehicle by modeling thevehicle as a round disk. This approximation contains a lot ofunnecessary safety margins in some areas around the vehicle, and it doesnot distinguish hazards in difference directions. As a result, theseconventional hazard avoidance methods tend to be very conservative indetermining collision, often identifying “false positives”. In oneembodiment of the present method, the vehicle is preferably modeled as arectangle, which is a more realistic representation of the footprint ofmost ground vehicles, and hazards around the vehicle are divided intomultiple zones. Each zone is associated with one or more critical pointson the vehicle's edge, and the potential collision with an hazard isdetermined by its distance to the critical points associated with thezone to which this hazard belongs. This eliminates almost allapproximation in the process of determining collisions, and hencecollision determination in the present method is much more reliable andaccurate. This results in accurate determination of the safety of adriving motion's driving commands, which is critical to theunobtrusiveness of the present method.

Hazard Detection

The vehicle employs one or more said rangefinders (e.g., laserrangefinder) or 3D cameras to detect and characterize obstacles in itsproximate environment.

Computing the Range of Safe Driving Commands

One embodiment adopts the Dubin's car model to represent the vehicle'skinematics. Under this model, the vehicle's trajectory over a shortperiod can be approximated by an arc of curvature τ. In other words, thevehicle's immediate trajectory can be parameterized by one singleparameter: its curvature τ or its radius R where τ=1/R. Furthermore, inthis embodiment the vehicle's driving command includes linear speed andturning rate, denoted by v_(c) and w_(c) respectively. The curvature ofthe vehicle's projected trajectory under commands v_(c) and w_(c) isτ_(c)=w_(c)/v_(c). The mapping between the driving commands and thetrajectory curvature allows for direct comparison between drivingcommands and vehicle trajectories.

As illustrated in FIG. 5, this embodiment divides all detected hazardsinto five zones around the vehicle, and it models the vehicle'sfootprint with safety margins as a rectangle L×W. Zone I covers the areain front of the vehicle and includes hazards that are most critical tothe vehicle's safety. The effective range of this zone, denoted byL_(c), is the summation of half of the diagonal of the vehicle'sfootprint and the minimum brake-to-stop distance. It is the shortestdistance for the vehicle to come to a complete stop at its maximumdeceleration. The configurable factor γ and constant γ₀ can be tuned toallow for some uncertainties in the brake-to-stop distance. Zones II andIV cover the left and right sides of the front portion of the vehicle.The width of these two zones is L_(a)−W/2, and their length, denoted byL_(b), also depends on the speed of the vehicle. The configurable factorβ and constant β₀ can be tuned as well. Zone III and V, formed by thevehicle's bounding circle and its footprint, covers the two sides of thevehicle's rear portion. These dimensional parameters are given in thefollowing equations.L _(a)=√{square root over (L ² +W ²)}/2L _(b) =L _(a) +βv+β ₀L _(c) =L _(a)+2γv ² /a _(max)+γ₀For an hazard point (x, y) located in Zone I, the vehicle can turn leftor right to avoid it. For each decision, a range of tuning curvature ofthe vehicle's motion that ensures hazard-free trajectories can be found.The curvature of a critical trajectory leads the vehicle to a positionwhere its left or right front corner meets the hazard. For example, thecenter of the critical right-turning trajectory is denoted by (0, R)with τ=1/R as shown in FIG. 6. The radius of the arc must satisfy thefollowing equation for the vehicle's left corner to meet the hazard (x,y) by turning right:

${\left( {R + \frac{W}{2}} \right)^{2} + \left( \frac{L}{2} \right)^{2}} = {x^{2} + \left( {R - y} \right)^{2}}$The solution of this equation is:

$R_{1} = \frac{d^{2} - L_{a}^{2}}{W + {2y}}$where d=√{square root over (x²+y²)} is the distance between the hazardand the vehicle. This implies that the vehicle can pass this hazardpoint without hitting it by following any right-turning trajectory witha turning radius smaller than R₁.

Similarly, if the vehicle decides to avoid the hazard by turning left,the center of the critical left-turning arc, denoted by (0, −R), mustsatisfy:

${\left( {R + \frac{W}{2}} \right)^{2} + \left( \frac{L}{2} \right)^{2}} = {x^{2} + \left( {{- R} - y} \right)^{2}}$The solution is:

$R_{2} = \frac{d^{2} - L_{a}^{2}}{W - {2y}}$which implies that the vehicle can also pass this hazard point withouthitting it by following any left-turning trajectory with a turningradius smaller than R₂. Hence the center of any hazard-free trajectoryin this case must satisfy −R₂≤R≤R₁; equivalently, the curvature τ ofhazard-free trajectories must satisfy:

$\tau \geq {\frac{W + {2y}}{d^{2} - L_{a}^{2}}\mspace{25mu}{or}\mspace{25mu}\tau} \leq \frac{{- W} + {2y}}{d^{2} - L_{a}^{2}}$The range of safe curvatures to avoid hazards in other zones can becalculated in a similar way. For an hazards Zones II or IV, thevehicle's choice is to minimize turning to the same side to avoid acollision. For example, when an hazard is located at (x, y) in Zone II,the vehicle can still turning left slightly without hitting it. Theturning curvature of a critical trajectory leads the vehicle to aposition where its left mid-point touches the hazard. As illustrated inFIG. 7, the radius of this trajectory must satisfy the followingequation:

$\left( {R - \frac{W}{2}} \right)^{2} = {x^{2} + \left( {{- R} - y} \right)^{2}}$The solution is

$R_{1} = \frac{d^{2} - {W^{2}/4}}{{- W} - {2y}}$The corresponding curvature is τ₁=−1/R₁. For the vehicle to avoid thishazard, the curvature range must satisfy

${\tau \geq \frac{W + {2y}}{d^{2} - {W^{2}/4}}}\mspace{11mu}$which includes both left-turning and right-turning trajectories.Similarly, for an hazard located at (x, y) in Zone IV, the admissiblecurvature range is

$\tau \leq \frac{{- W} + {2y}}{d^{2} - {W^{2}/4}}$To avoid an hazard in Zone III or V, the vehicle should avoid turningtoo much to the opposite side. For example, if there is an hazard at (x,y) in Zone III, it is obviously safe for the vehicle to move forward orturn left, but it can only turn right slightly without hitting it. Asdepicted in FIG. 8, the critical right-turning trajectory in thisscenario leads the vehicle to a position where its left-rear cornertouches the hazard. The admissible curvature range in this case is foundto be:

$\tau \leq \frac{W + {2y}}{d^{2} - L_{a}^{2}}$Similarly the admissible curvature range for an hazard (x, y) in Zone Vis found to be:

$\tau \geq \frac{{- W} + {2y}}{d^{2} - L_{a}^{2}}$For each hazard point detected in these five zones, a range of feasiblecurvatures is calculated by one of the five equations presented above.Then, those that may push the vehicle out of balance if it is on a slopeor uneven terrain will be rejected. The intersection of all thesefiltered ranges determines the range of safe curvatures that the vehiclemust follow in order to avoid all these hazards. Depending on thedistribution of proximate hazards, the final range could be a union oftwo separate intervals, a single interval, or empty.

The commanded velocity of the vehicle depends on several factorsincluding: vehicle state (for example actual velocity, rate of turn andattitude) and terrain type (e.g., roughness and inclination) andorientation of the vehicle with respect to the terrain slope orenvironmental features. Commanded velocity on the sloped terrain shouldbe adjusted to ensure sufficient traction while avoiding slippage andoverturning of the vehicle. This is achieved by measuring currentvehicle attitude and terrain slope ahead of the vehicle. Differentstrategies may be used depending on the terrain and vehiclecapabilities. For example, climbing stairs is safest when approachingthe steps at the right angle.

Verifying the Safety of the Driving Commands Issued by a Driving Module

In one embodiment, the driving module is a person who controls thevehicle's motion by using a hand controller that is wirelesslyinterfaced with the vehicle. In a related embodiment, a person drivesthe car directly with the vehicle, controlling its speed, heading andrate of change of heading with the steering wheel, accelerator pedal andbrake pedal. In another embodiment, the driving module is a computersystem that runs a way-point following algorithm, causing the vehicle totrack a path between the way-points. In each embodiment, the vehicle'sdriving command includes linear speed and turning rate, denoted by v_(c)and w_(c). If τ_(c)=w_(c)/v_(c) is within the admissible range found thepreceding step, then the command pair (v_(c), w_(c)) is considered safeand should be passed the vehicle directly; otherwise they should beadjusted before being passed to the vehicle to ensure its safety.

Adjusting Unsafe Driving Commands

If a driving command pair (v_(c), w_(c)) is not within the admissiblerange, then it is considered unsafe and must be adjusted to conform withthe admissible range. This step takes the command pair from said drivingmodule and the admissible range of trajectory curvature as inputs. Inaddition, it explicitly considers the constraints on the vehicle's speedand turning rate to avoid generating infeasible or non-smooth motioncommands which would be observed as interfering behavior to theoperator. When a command pair (v_(c), w_(c)) is found outside theadmissible range, the turning rate command is changed first within itsadmissible range. If the original speed command and the adjusted turningrate is not within the admissible range, the speed command is thenadjusted within its admissible range. If changing both does not meet theadmissible range, it indicates that no feasible solution exists. In thissituation, the speed and turning rate commands are set to zero to stopthe vehicle.

Those skilled in the art will appreciate that the present method andsystem may be used in both remotely driven or teleoperated vehicles aswell as vehicles being directly driven by a person. In the teleoperatedvehicle case, based on camera views of the scene in front of the remotevehicle, remote human drivers specify real-time driving command pairs(v_(c), w_(c)) through input devices like a gamepad or joystick typecontroller. In the case of a person driving a car, a human driverspecifies and regulates a desired driving command pair (v_(c), w_(c)) bychanging the steering wheel orientation, the rate of change of steeringangle, as well as regulating speed through monitoring the speedometerand regulating the desired speed through the use of the accelerator andbrake. In this invention, for the teleoperated case, the on-boardvehicle on a real-time basis would replace the original remote driver'sdriving command pair (v_(c), w_(c)) with the admissible speed andturning rate commands. In the case of the car being directly driven by aperson, where the instantaneous driving command pair (v_(c), w_(c)) isnot safe, the admissible driving command would be applied through aspeed control function like the vehicle's cruise control and the turningrate through a servo controller on the steering wheel, such as thatdescribed in U.S. Pat. No. 6,157,892 for the “turnability” increasingcontrol operation.

Notify Driving Module of the Command Adjustment and Hazard Information

In the case of a human-operated vehicle (teleoperated or driven directlyby a person in the vehicle), the command adjustment is presented to warnthe operator of the behavior of the hazard avoidance system. As shown inFIGS. 9(a) and 9(b), visual signals are provided to notify the operatorthe location of hazards when they are within critical distance and theeffect of said hazard avoidance system. In another embodiment, audiblecues are used as notifying signals. Specifically, a visual warningsignal is used to notify a human operator of the behavior of the hazardavoidance system. In FIG. 9(a) the vehicle detects one hazard on itstop-left corner. The triangle on its right side indicates that thehazard avoidance system is driving the vehicle to make a right turn inorder to avoid it. In FIG. 9(b), the vehicle detects two hazards near ittop-left corner. The triangle on its right side indicates that thehazard avoidance system is driving the vehicle to make a right turn inorder to avoid them, and the triangle on its top indicates that thehazard avoidance system is slowing down the vehicle during the rightturn.

The driving assistance system for a vehicle disclosed herein is veryadvantageous for its assistive and unobtrusive nature. This featureallows it to provide unobtrusive driving assistance to bothhuman-operated and autonomous vehicles in avoiding both static andmoving hazards.

It will be understood that the present method is a computer implementedmethod with the computer programmed with instructions to perform all thesteps in as disclosed herein. A non-limiting exemplary computer systemthat may be used to implement the present method contains a centralprocessor interfaced with a memory storage device, input/output devicesand user interface(s), a power supply, an internal memory storagecontaining code for the various programs used to implement the presentmethod with the computer system configured to accept thecomputer-readable media containing the instructions to implement thepresent method.

Thus, the present disclosure provides a computer implemented method ofproviding unobtrusive driving assistance to a vehicle to avoid andhandle hazards, the vehicle having a computer, one or more positioningsensors connected to said computer, one or more rangefinder sensorsconnected to said computer, a driving module interfaced with saidcomputer, said method comprising:

-   -   a) acquiring raw sensor data from said one or more positioning        sensors and said one or wore rangefinder sensors;    -   b) estimating a state of said vehicle from said raw data from        said one or more positioning sensors;    -   c) identifying hazards to said vehicle from said raw data from        said one or more rangefinder sensors;    -   d) computing a range of safe driving commands for all said        hazards;    -   e) receiving driving commands from said driving module and        comparing them with said range of safe driving commands; and    -   f) if said driving commands fall outside of said range of safe        driving commands, adjusting said driving commands from said        driving module and passing the adjusted driving commands to said        vehicle, otherwise if said driving commands fall within said        range of driving commands, passing said driving commands to said        vehicle without modification.

The present disclosure provides a computer implemented method forcalculating the range of safe driving commands for a vehicle to avoiddetected hazards, comprising the steps of:

-   -   a) partitioning all detected hazards into multiple zones around        said vehicle;    -   b) Identifying one or more critical points on said vehicle for        each of said zones;    -   c) computing one critical trajectory for each of said critical        points to avoid each hazard in the zone that is corresponding to        said critical point;    -   d) calculating the curvature of each critical trajectory;    -   e) measuring the vehicle attitude and estimating its stability;    -   f) calculating the range of safe curvatures for each of said        hazards with said range's boundaries defined by said critical        trajectories; and    -   g) calculating the intersection all ranges of safe curvatures.

The present disclosure provides a computer implemented method forcomputing critical trajectories to avoid hazards in the vicinity of avehicle, comprising the steps of:

-   -   d) partitioning all detected hazards into one or more zones        around said vehicle;    -   e) identifying one or more critical points on said vehicle for        each of said one or more zones; and    -   f) computing one critical trajectory for each of said critical        points to avoid or handle each hazard in the zone that is        corresponding to said critical point.

The foregoing description of the preferred embodiments of the disclosurehas been presented to illustrate the principles of the disclosure andnot to limit the disclosure to the particular embodiment illustrated. Itis intended that the scope of the disclosure be defined by all of theembodiments encompassed within the following claims and theirequivalents.

What is claimed is:
 1. A computer implemented method of providingunobtrusive driving assistance to a driving module of a vehicle to avoidand handle hazards, the vehicle having a computer, one or morepositioning sensors connected to said computer, one or more rangefindersensors connected to said computer, said driving module being one ormore persons or a computer system that issues driving commands to thevehicle and interfaced with said computer, said method comprising:acquiring raw sensor data from said one or more positioning sensors andsaid one or more rangefinder sensors; estimating a state of said vehiclefrom said raw data from said one or more positioning sensors;identifying hazards to said vehicle from said raw data from said one ormore rangefinder sensors; computing a range of safe driving commands forall said hazards; receiving driving commands from said driving moduleand comparing them with said range of safe driving commands; and whensaid driving commands fall outside of said range of safe drivingcommands, adjusting said driving commands from said driving module witha minimal correction, to produce driving commands that are within saidrange of safe driving commands and within the velocity and inclinationlimits of said vehicle and considers constraints on the vehicle's speedand turning rate to avoid generating infeasible or non-smooth motioncommands so that the driving module's intention is respected to themaximum extent possible, which is perceived as unobtrusive to thedriving module and not as interfering behavior, otherwise when saiddriving commands fall within said range of safe driving commands,passing said driving commands to said vehicle without modification. 2.The method according to claim 1 wherein said one or more positioningsensors and said one or more rangefinder sensors are interfaced withsaid computer and said computer is interfaced with the vehicle'sactuation system and driving module.
 3. The method according to claim 1wherein the state of the vehicle includes velocity of said vehicle,which is generated by using said raw sensor data from said one or morepositioning sensors and a kinematics model of the vehicle.
 4. The methodaccording to claim 3 wherein the state of the vehicles includes velocityand attitude of said vehicle, which are generated by using, said rawsensor data from said one or more positioning sensors and a kinematicsmodel of the vehicle.
 5. The method according to claim 1 wherein saidhazards are characterized for their traversability by the vehicle usingsaid raw data from the rangefinder sensors.
 6. The method according toclaim 1 wherein said step of computing said range of safe drivingcommands is done by using the locations of said hazards, characteristicsof said hazards, a kinematic model of said vehicle, said vehicle'sgeometric shape, state, and a safety clearance between hazards and thevehicle.
 7. The method according to claim 6 wherein said safetyclearance can be specified by a user.
 8. The method according to claim 6wherein said safety clearance can be adjusted during runtime accordingto said vehicle's state and said hazards' distribution.
 9. Anunobtrusive driving assistance system mounted on a vehicle for detectingand avoiding hazards, said system comprising: one or more positioningsensors mounted on the vehicle, one or more rangefinders mounted on thevehicle, and a computer on board the vehicle, said one or morepositioning and vehicle state sensors and one or more rangefinders beinginterfaced with said computer, said computer being interfaced with thevehicle's actuation system; a driving module being one or more personsor said computer that issues driving commands to the vehicle; saidcomputer being programmed with instructions for computing a range ofsafe driving commands including computing a range of all safetrajectories for said vehicle to avoid any hazards in the environment ofsaid vehicle detected by said one or more rangefinders, and convertingsaid range of safe trajectories into a range of safe driving commands byusing an inverse kinematic model of said vehicle; said computer beingprogrammed with instructions for adjusting said driving module's drivingcommands including: comparing the driving commands from said drivingmodule with said range of safe driving commands, adjusting the drivingcommands from said driving module if they are outside the range of safedriving commands with a minimal correction, to produce driving commandsthat are within said range of safe driving commands and within thevelocity and inclination limits of said vehicle and considersconstraints on the vehicle's speed and turning rate to avoid generatinginfeasible or non-smooth motion commands so that the driving module'sintention is respected to the maximum extent possible, which isperceived as unobtrusive to the driving module and not as interferingbehavior and passing said driving commands to said vehicle; otherwisewhen said driving commands fall within said range of safe drivingcommands, passing said driving commands to said vehicle withoutmodification; and said computer being programmed with instructions fornotifying said driving module of said command adjustment and hazardinformation.
 10. The system according to claim 9 wherein said computeris the driving module and is interfaced with the vehicle's throttle andengine system through a drive control means to adjust a speed of travelof said vehicle and the vehicle's steering system through a steeringcontrol means to adjust a direction of travel and turning rate of saidvehicle.
 11. A non-transitory computer-readable media containinginstructions, which when read and executed by a computer, causes thecomputer to execute a method for providing unobtrusive drivingassistance to a driving module of a vehicle to avoid and handle hazards,the vehicle having a computer, one or more positioning sensors connectedto said computer, one or more rangefinder sensors connected to saidcomputer, said driving module being one or more persons or a computersystem that issues driving commands to the vehicle and interfaced withsaid computer, said method comprising: acquiring raw sensor data fromsaid one or more positioning sensors and said one or more rangefindersensors; estimating a state of said vehicle from said raw data from saidone or more positioning sensors; identifying hazards to said vehiclefrom said raw data from said one or more rangefinder sensors; computinga range of safe driving commands for all said hazards; receiving drivingcommands from said driving module and comparing them with said range ofsafe driving commands; and when said driving commands fall outside ofsaid range of safe driving commands, adjusting said driving commandsfrom said driving module with minimal correction, to produce drivingcommands that are within said range of safe driving commands and withinthe velocity and inclination limits of said vehicle and considersconstraints on the vehicle's speed and turning rate to avoid generatinginfeasible or non-smooth motion commands so as the driving module'sintention is respected to the maximum extent possible, which isperceived as unobtrusive to the driving module and not observed asinterfering behavior, otherwise when said driving commands fall withinsaid range of safe driving commands, passing said driving commands tosaid vehicle without modification.
 12. The computer-readable media inaccordance with claim 11, wherein said one or more positioning sensorsand said one or more rangefinder sensors are interfaced with saidcomputer and said computer is interfaced with the vehicle's actuationsystem and driving module.
 13. The computer-readable media in accordancewith claim 11, wherein the state of the vehicle includes velocity ofsaid vehicle, which is generated by using said raw sensor data from saidone or more positioning sensors and a kinematics model of the vehicle.14. The computer-readable media in accordance with claim 13, wherein thestate of the vehicles includes velocity and attitude of said vehicle,which are generated by using, said raw sensor data from said one or morepositioning sensors and a kinematics model of the vehicle.
 15. Thecomputer-readable media in accordance with claim 11, wherein saidhazards are characterized for their traversability by the vehicle usingsaid raw data from the rangefinder sensors.
 16. The computer-readablemedia in accordance with claim 11, wherein said step of computing saidrange of safe driving commands is done by using the locations of saidhazards, characteristics of said hazards, a kinematic model of saidvehicle, said vehicle's geometric shape, state, and a safety clearancebetween hazards and the vehicle.
 17. The computer-readable media claim11 wherein said step of adjusting said driving commands from saiddriving module produces driving commands that are within said range ofsafe driving commands and within the velocity and inclination limits ofsaid vehicle.
 18. The method according to claim 16 wherein said safetyclearance can be specified by a user.
 19. The method according to claim16 wherein said safety clearance can be adjusted during runtimeaccording to said vehicle's state and said hazards' distribution. 20.The method according to claim 1 wherein the driving module is one ormore persons who controls the vehicle's motion by using a handcontroller that is wirelessly interfaced with the vehicle.
 21. Themethod according to claim 1 wherein the driving module is one or morepersons who drives the car directly with the vehicle, controlling itsspeed, heading and rate of change of heading with the steering wheel,accelerator pedal and brake pedal.
 22. The method according to claim 1wherein the driving module is a computer system that runs a way-pointfollowing algorithm, causing the vehicle to track a path between theway-points.
 23. The non-transitory computer-readable media containinginstructions, according to claim 11 wherein the driving module is one ormore persons who controls the vehicle's motion by using a handcontroller that is wirelessly interfaced with the vehicle.
 24. Thenon-transitory computer-readable media containing instructions,according to claim 11 wherein the driving module is one or more personswho drives the car directly with the vehicle, controlling its speed,heading and rate of change of heading with the steering wheel,accelerator pedal and brake pedal.
 25. The non-transitorycomputer-readable media containing instructions, according to claim 11wherein the driving module is a computer system that runs a way-pointfollowing algorithm, causing the vehicle to track a path between theway-points.
 26. The system according to claim 9 wherein the drivingmodule is a human.